package servidor;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.HashSet;

/**
 *
 * @author Stev
 */
public class agregarUsuarios {
    
    public HashSet usuarios= new HashSet();
    public HashMap llavesServer_Usuario = new HashMap();
    public HashMap IPs_Usuarios= new HashMap();
    
    public void agregarUsuarios(){
    
        cargarRegistrados();
    
    }
    
     public boolean verificarUsuario(String username) {

        if (usuarios.contains(username)) {
            return true;
        } else {
            return false;
        }
    }
    
    public String registrarUsuarios(String username, String llave) {

        int num_caracteres = llave.length();
        
        
         if ((num_caracteres == 8)) {
                    if (verificarUsuario(username) ==false) {
                        //La persona no se encuentra en la BD, se agrega entonces.
                        File archivo = new File("datos.txt");
                        FileReader fr = null;
                        BufferedReader br;

                        try {
                            BufferedWriter bw = new BufferedWriter(new FileWriter(archivo, true));
                            bw.write(username + "," + llave);
                            bw.newLine();
                            // Hay que cerrar el fichero
                            bw.close();
                            usuarios.add(username);
                            llavesServer_Usuario.put(username, llave);
                            
                            return "Agregado con exito";
                        } catch (IOException ioe) {
                            ioe.printStackTrace();
                        }
                    }
                    return "Ya se encuentra registrado";
                } else {
                    return "El largo de llave debe ser exactamente de 8 caracteres";
         }
         
    }
    
    public void cargarRegistrados() {
        File archivo = new File("datos.txt");
        FileReader fr = null;
        BufferedReader br;
        boolean exito = false;
        
        //Reinicar valores
        usuarios= new HashSet();
        llavesServer_Usuario = new HashMap();

        //Abro archivo y saco las lineas de texto
        try {

            fr = new FileReader(archivo);
            br = new BufferedReader(fr);

            // Lectura del fichero linea por linea
            String linea;
            String[] contLinea = null;


            while ((linea = br.readLine()) != null) {

                contLinea = linea.split(",");  //Guardo el contenido de linea en un arreglo
                System.out.println(contLinea[0]);
                System.out.println(contLinea[1]);
                
                if (contLinea.length >= 2) {
                    usuarios.add(contLinea[0]);  //Guardo nombre de usuarios
                    llavesServer_Usuario.put(contLinea[0],contLinea[1]);
                    
                }
            }

        }//fin try de lectura
        catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (null != fr) {
                    fr.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }
     
    
       public void escribirLog(String mensaje) {

        File archivo;
        archivo = new File("servidor.log");

        try {

            FileWriter w = new FileWriter(archivo, true);
            BufferedWriter bw = new BufferedWriter(w);
            PrintWriter wr = new PrintWriter(bw);

            if (archivo.exists()) {
                wr.append(mensaje + "\n");
            }

            wr.close();
            bw.close();
        } catch (IOException e) {
        };
    }

    
    
}
